Substantial changes have occurred in the communication and computing industries over approximately the past decade. These changes have been driven, in part, by the increasing dominance of networking in general, and of the Internet in particular. In the past many computers and other digital devices were standalone, that is, they operated without communicating with other devices. Today however, being interconnected with other devices, even those physically separated by vast distances, substantially enhances the capabilities and usefulness of many digital devices.
Packet networks are often used to convey information among digital devices. In a packet network, the information conveyed is divided into a number of packets, where each packet is small enough in size for the packet network to convey the packet. Each packet contains a header with information about the packet, including for example, the address of the device to which the packet is to be sent.
A stream of packets flows from a particular device to another particular device, and typically a corresponding stream flows between the same two devices in the opposite direction. As the packets are forwarded along their route by various network devices, they are often intermixed with packets from other streams.
When all is working well, networking provides substantial benefits over computers and other digital devices operating alone. However, networks are vulnerable both to accidental malfunctions and to malicious attacks. Networks can be seriously disrupted, for example, when they receive more information than they can successfully convey. Some network devices have large capacities to convey information, for example, they may be able to receive and forward several million packets per second, where each packet contains several thousand bytes of data. Nevertheless, every device connected to, or part of, a network has a limited capacity to properly process network traffic.
No digital device can function properly if the device must handle too many packets, or too many bytes, within a period of time, where “too many” is determined by the specifications and capabilities of each particular device. Thus, managing network traffic is an important aspect of ensuring the reliability and security of networks.
Some network devices manage traffic by limiting the rate at which packets within a particular stream of network traffic are handled by the device, regardless of the number of bytes within that stream. Other network devices manage traffic by limiting the rate at which bytes within a particular stream are handled, regardless of the number of packets within that steam.